package com.net.xpay.core.domain.collect;

import com.net.common.domain.VersionedDomain;
import com.net.xpay.core.enums.CollectionOrderStatus;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商家收集的转账订单
 */
@Getter
@Setter
@NoArgsConstructor
public class CollectionOrder extends VersionedDomain {

    @ApiModelProperty(notes = "商户编号")
    private Long userId;

    @ApiModelProperty(notes = "收款方账号，传入支付宝账号或者支付宝uid test@taobao.com 必选")
    private String identity;

    @ApiModelProperty(notes = "1.当identity传入支付宝账号时，identity_type传ALIPAY_LOGON_ID 2.当当identity传入支付宝uid时，identity_type传ALIPAY_USER_ID 3.TAOBAO_NICKNAME 旺旺 必选")
    private String identityType;

    @ApiModelProperty(notes = "参与方真实姓名，如果非空，将校验收款支付宝账号姓名一致性。当identity_type传ALIPAY_LOGON_ID时此字段必选")
    private String name;

    @ApiModelProperty(notes = "转账金额 单位为元（最小1元），精确到小数点后两位 必选")
    private BigDecimal transAmount;

    @ApiModelProperty(notes = "状态")
    private CollectionOrderStatus status;

    @ApiModelProperty(notes = "完成时间")
    private LocalDateTime endTime;

    @ApiModelProperty(notes = "明细失败错误码")
    private String errorCode;

    @ApiModelProperty(notes = "明细失败错误原因")
    private String errorMsg;

    public static CollectionOrder getInstance() {
        return new CollectionOrder();
    }
}
